Natural language input can be written or spoken input (e.g., speech or text) that is in a natural form used by a person when speaking or writing to another person. Natural language input can permit a user to easily interact with an electronic device using well-known language. For example, a virtual assistant operating on an electronic device can enable a user to access various services of the electronic device through natural language input to the virtual assistant. The virtual assistant can perform natural language processing on the natural language input to determine user intent from the natural language input. The determined user intent can then be operationalized into tasks that are executed by the virtual assistant.
Natural language processing can be implemented by parsing and recognizing individual words or groups of words in the natural language input to determine the user intent associated with the input. However, due to the complex and shifting “rules” of human natural language, the overall meaning of a natural language input can be missed by recognizing small portions of natural language input separately. In addition, a given user intent can be expressed in many unanticipated ways using natural language. According, determining user intent by recognizing small portions of natural language input separately can yield inaccurate or incomplete results.